package com.example.activemq;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import net.sf.json.JSONObject;

//这是消息队列的应用场景之一，用户注册完毕后需要发短信和邮件
@Controller
@RequestMapping("request")
public class RegisterAndSendEmailOrMessage {

	@Autowired
	private Producer producer; 
	
	@RequestMapping(value="register")
	@ResponseBody
	public String register() throws InterruptedException{
		
		//模拟用户名，手机号，邮箱
		String username = "zhujianfeng";
		
		String telphone = "18855583869";
		
		String email = "673070041@qq.com";
		
		JSONObject obj = new JSONObject();
		
		obj.put("username", username);
		obj.put("telphone", telphone);
		obj.put("email", email);
		
		
		//保存用户注册信息是必须操作
		System.out.println("保存用户信息。。。。。。。。。。。。。。。");
		Thread.sleep(5000);
		System.out.println("保存完毕");
		//注册信息在保存成功后，把信息发到邮箱，后续过程交给其他服务来处理，而把消息发到邮箱所消耗的
		//时间可以忽略不计，保存成功后就可以响应客户端，做到服务解耦，以及大大提高响应速度
		
		//把信息放进邮箱
		producer.send2(obj.toString());
		//发送到queue
		producer.send(obj.toString());
		
		
		return "注册成功";
	}
}
